草庐IT

Matplotlib 散点图

全部标签

python - Matplotlib 错误会导致内存泄漏。我怎样才能释放那段内存?

我正在运行一个包含matplotlib并允许用户指定图形轴的Django应用程序。这可能会导致“溢出错误:超出聚合复杂度”当发生这种情况时,多达100MB的RAM会被占用。通常我使用fig.gcf()、plot.close()和gc.collect()释放内存,但内存与错误相关联的似乎与绘图对象无关。有谁知道我怎样才能释放那段内存?谢谢。这里有一些代码给出了AggComplexityError。importmatplotlibmatplotlib.use('Agg')importmatplotlib.pyplotaspltimportnumpyasnpimportgca=np.aran

python - matplotlib 中具有零值的对数标度图

我目前正在使用logscale,以便有更大的可能性绘制我的数据。尽管如此,我的数据也包含零值。我知道这些零值在logscale上不起作用,因为未定义log(0)。例如,fig=plt.figure()ax=fig.add_subplot(111)ax.plot([0,1,2],[10,10,100],marker='o',linestyle='-')ax.set_yscale('log')ax.set_xscale('log')完全省略零值。这种行为可以接受吗?至少应该有某种警告。我只是偶然认出了它。是否还有一种方法可以在对数刻度中绘制零值数据?谢谢!P.S.:我希望这适合stacko

python - matplotlib 中 Poly3DCollection 图的透明度

我正在尝试使用用于Python的出色的Matplotlib包绘制一些对象。这些对象由使用plt.scatter()实现的点和使用Poly3DCollection实现的面片组成。我希望补丁具有轻微的透明度,以便可以看到补丁后面的点和边缘。这里是我已经生成的代码和绘图。似乎我快到了,只是缺少透明度的功能。有趣的是,如果我先绘制Ploy3DCollection,然后绘制scatter点,则可以看到这些点,但看不到边缘。有人对我有什么建议吗?frommatplotlibimportpyplotaspltfrommpl_toolkits.mplot3d.art3dimportPoly3DColl

python - 将字符串与随机颜色匹配的优雅方法 matplotlib

我想将一些数据的标签转换为颜色,以便使用matplotlib绘图我有一个名字列表["bob","joe","andrew","pete"]在matplotlib中是否有一种内置的方法可以将这些字符串与颜色值进行映射?我考虑过随机创建十六进制值,但我最终可能会得到相似的颜色或不可见的颜色。我尝试了几种不同的方法来尝试从下面的cmap答案中创建键值:这个:#namesisalistofdistinctnamescmap=plt.get_cmap('cool')colors=cmap(np.linspace(0,1,len(names)))clr={names[i]:colors[i]for

python - 我可以使用带有 pandas 数据框的散点图绘制回归线并显示参数吗?

我想使用以下代码从Pandas数据帧生成散点图:df.plot.scatter(x='one',y='two,title='Scatterplot')是否有我可以随语句发送的参数,以便它绘制回归线并显示拟合参数?类似于:df.plot.scatter(x='one',y='two',title='Scatterplot',Regression_line) 最佳答案 我认为DataFrame.plot()没有这样的参数。但是,您可以使用Seaborn轻松实现此目的.只需将Pandas数据框传递给lmplot(假设你已经安装了seabo

python - 更改 matplotlib 中日期时间轴的格式

我有一个索引为datetime的系列,我想绘制它。我想在y轴上绘制系列的值,在x轴上绘制系列的索引。系列如下所示:2014-01-0172014-02-0182014-03-0192014-04-018...我使用plt.plot(series.index,series.values)生成图表。但图表看起来像:问题是我只想知道年份和月份(yyyy-mm或2016年3月)。但是,图表包含小时、分钟和秒。我怎样才能删除它们以获得我想要的格式? 最佳答案 importnumpyasnpimportpandasaspdimportmatpl

python - Matplotlib 数字图像作为 numpy 数组

我正在尝试从Matplotlib图形中获取一个numpy数组图像,我目前正在通过保存到一个文件,然后读回文件来实现它,但我觉得必须有更好的方法。这是我现在正在做的事情:frommatplotlib.backends.backend_aggimportFigureCanvasAggasFigureCanvasfrommatplotlib.figureimportFigurefig=Figure()canvas=FigureCanvas(fig)ax=fig.gca()ax.text(0.0,0.0,"Test",fontsize=45)ax.axis('off')canvas.print

python - 如何使用 matplotlib 按时绘制事件

我有3个列表,每个列表包含数字,代表一个时间。时间表示事件的发生。例如,在这个A中,我为事件A的每次出现分配了一个编号。我想在图表上表示这些数据。以下两种方式之一:1)aabaaabbccacac2)a->xxxxxxxb->xxxc->xxxx 最佳答案 作为前面答案的扩展,您可以使用plt.hbar:importmatplotlib.pyplotaspltimportnumpyasnpimportstringx=np.array([0,1,2,3,4,5,6,7,8,9,10,11,12,13])y=np.array([0,0,

python - 在 matplotlib 中使用 yscale ('log' 时缺少错误栏)

在某些情况下,当使用对数刻度时,matplotlib会错误地显示带有误差条的图。假设这些数据(例如在pylab中):s=[19.0,20.0,21.0,22.0,24.0]v=[36.5,66.814250000000001,130.17750000000001,498.57466666666664,19.41]verr=[0.28999999999999998,80.075044597909169,71.322124839818571,650.11015891565125,0.02]errorbar(s,v,yerr=verr)我得到了一个正常的结果,但是当我切换到对数刻度时:ysc

python - Matplotlib y 轴值未排序

这个问题在这里已经有了答案:Differenceinplottingwithdifferentmatplotlibversions(1个回答)关闭4年前。我正在尝试使用matplotlib绘图。该图显示了Y轴未排序的问题。这是代码。#-*-coding:UTF-8-*-importmatplotlib.pyplotaspltimportmatplotlib.datesasmdatesimportdatetimeimportnumpyasnpI020=[line.strip('\n').split(",")forlineinopen(r'D:\Users\a0476\Anaconda3\